home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_11_05 / test_obj / dgen.h < prev    next >
C/C++ Source or Header  |  1993-01-20  |  2KB  |  71 lines

  1. #ifndef DGEN_H
  2. #define DGEN_H
  3.  
  4. void init_dgen(void);
  5. void dgen(void);
  6. typedef union {
  7.   char ag_vt_2[sizeof(int)];
  8.   char ag_vt_3[sizeof(char *)];
  9.   char ag_vt_4[sizeof(struct STRLIST *)];
  10. } dgen_vs_type;
  11.  
  12. typedef enum {
  13.   dgen_space_token = 1, dgen_blank_token, dgen_eol_token,
  14.   dgen_comment_token, dgen_commentCharacter_token = 6,
  15.   dgen_variable_token = 9, dgen_varStart_token, dgen_varRest_token,
  16.   dgen_alpha_token = 13, dgen_alphanumeric_token, dgen_string_token,
  17.   dgen_doubleQuote_token, dgen_stringContents_token,
  18.   dgen_stringCharacter_token, dgen_block_token, dgen_blockStart_token,
  19.   dgen_blockComponent_token, dgen_blockCharacter_token = 26,
  20.   dgen_nestedBlock_token, dgen_nestStart_token, dgen_initializerList_token,
  21.   dgen_initializer_token, dgen_initializer_contents_token = 32,
  22.   dgen_notCloseBracket_token = 36, dgen_grammar_token, dgen_statement_token,
  23.   dgen_eof_token = 40, dgen_embeddedBlock_token, dgen_runStatement_token,
  24.   dgen_declaration_token, dgen_runHeader_token, dgen_testSpec_token,
  25.   dgen_variableList_token = 48, dgen_charDeclaration_token = 50,
  26.   dgen_stringDeclaration_token, dgen_intDeclaration_token,
  27.   dgen_doubleDeclaration_token, dgen_FILEDeclaration_token,
  28.   dgen_intarr2Declaration_token, dgen_ItemDeclaration_token,
  29.   dgen_ClientDeclaration_token, dgen_InvoiceDeclaration_token
  30. } dgen_token_type;
  31.  
  32. typedef struct {
  33.   dgen_token_type token_number, reduction_token, error_frame_token;
  34.   int input_code;
  35.   int input_value;
  36.   int line, column;
  37.   int ssx, sn, error_frame_ssx;
  38.   int drt, dssx, dsn;
  39.   int ss[32];
  40.   dgen_vs_type vs[32];
  41.   int bts[32], btsx;
  42.   unsigned char * pointer;
  43.   unsigned char * la_ptr;
  44.   int lab[9], rx, fx;
  45.   unsigned char *key_sp;
  46.   int save_index, key_state;
  47.   char *error_message;
  48.   char read_flag;
  49.   char exit_flag;
  50. } dgen_pcb_type;
  51.  
  52. #ifndef PRULE_CONTEXT
  53. #define PRULE_CONTEXT(pcb)  (&((pcb).cs[(pcb).ssx]))
  54. #define PERROR_CONTEXT(pcb) ((pcb).cs[(pcb).error_frame_ssx])
  55. #define PCONTEXT(pcb)       ((pcb).cs[(pcb).ssx])
  56. #endif
  57.  
  58. #ifndef AG_RUNNING_CODE_CODE
  59. /* PCB.exit_flag values */
  60. #define AG_RUNNING_CODE         0
  61. #define AG_SUCCESS_CODE         1
  62. #define AG_SYNTAX_ERROR_CODE    2
  63. #define AG_REDUCTION_ERROR_CODE 3
  64. #define AG_STACK_ERROR_CODE     4
  65. #define AG_SEMANTIC_ERROR_CODE  5
  66. #endif
  67.  
  68. extern dgen_pcb_type dgen_pcb;
  69. #endif
  70.  
  71.